草庐IT

Python NotImplemented 常量

全部标签

c++ - 您对在方法内部声明常量的看法...?

Closed.Thisquestionisopinion-based。它当前不接受答案。想改善这个问题吗?更新问题,以便editingthispost用事实和引用来回答。1年前关闭。Improvethisquestion我所管理的团队中的开发人员更喜欢在测试中将变量声明为常量,例如constintsomeValue=1;(而不只是intsomeValue=1;)。当我看到此消息时,我发现它有点奇怪,并质疑他做了什么。他的论点是,对于此测试而言,这是明智的-因为他所分配的值永远不会改变。我一直认为常量是应该在类级别声明的东西。但是,我确实看到了该开发人员的观点。你怎么看?而且,撇开测试,

c++ - 如何纠正这个常量?

我有一个似乎无法解决的常量正确性问题。这是我的程序的结构:classNode{private:intid;std::setneighbours;public:Node();Node(intid_p);voidset_id(constint&id_p);intget_id()const;voidadd_neighbour(Node*neighbour);boolis_neighbour(Node*neighbour)const;friendbooloperatornode_list;public:Graph();voidadd_node(intid);constNode*get_node

c++ - 缩小从 `int`(常量表达式)到 `unsigned int` 的转换 - MSVC vs gcc vs clang

constexprinti=100;structF{F(unsignedint){}};intmain(){F{i};}上面的代码片段:使用-Wall-Wextra-Wpedantic在g++7上编译没有警告。使用-Wall-Wextra-Wpedantic在clang++4上编译没有警告。无法在MSVC2017上编译:conversionfrom'constint'to'unsignedint'requiresanarrowingconversion问:这里MSVC是不是错了?liveexampleongodbolt.orginti=100;structF{F(unsignedint

C++17:还在使用枚举作为常量吗?

这个问题在这里已经有了答案:Replacingconstants:whentousestaticconstexprandinlineconstexpr?(2个答案)关闭3年前。我习惯于将enum用作常量——它们编写起来很快,可以放在.h文件中,并且工作正常。enum{BOX_LEFT=10,BOX_TOP=50,BOX_WIDTH=100,BOX_HEIGHT=50};enum{REASONS_I_LIKE_ENUM_AS_CONSTANTS=3};这不再是一个好主意吗?我看不错reasons更喜欢枚举类(传统枚举隐式转换为int;传统枚举将它们的枚举器导出到周围的范围),但在这种情况

c++ - 评估潜在常量表达式期间的未定义行为

考虑这个程序:#include#include#includeexterninti;structS{S(){if(i==0){puts("Hello,world!");exit(0);}}};Ss;inti=1+2*INT_MIN;intmain(){}根据我对表达式求值的理解,这是一个严格符合标准的程序,它打印“Hello,world!”,然后退出,并且从不实际求值i的初始化程序:3.6.2Initializationofnon-localvariables[basic.start.init][...]Variableswithstaticstorageduration(3.7.1)

c++ - 如何使#include-file 的内容成为 cpp 文件中的编译时常量?

我有一个文件module.hppstructModuleBase{virtualvoidrun()=0;};和一个main.cpp程序intmain(){cout我可以在...?...放什么来让头文件的内容打印在这里?一个基本的想法是intmain(){staticconststringcontent=R"(#include)";cout但多行字符串仅在C++11中可用,#include是否不能在多行字符串中工作(这很好)?如果gcc有一个不可移植的方法...那将是一个开始。澄清(更新):替换应该在编译时完成。 最佳答案 我所知道的

c++ - 常量表达式中的静态成员访问

访问静态类成员函数或变量,可以通过两种方式完成:通过对象(obj.member_fun()或obj.member_var)或通过类(Class::member_fun()或Class::member_var)。但是,在constexpr函数中,Clang给出了对象访问错误,需要使用类访问:structS{constexprstaticautos_v=42;constexprstaticautov(){returns_v;}};#defineTEST1constexprautofoo(Sconst&s[[maybe_unused]]){#ifTESTconstexprautov=s.v(

c++ - 是否有必要通过常量引用传递迭代器

classT{unordered_maptable;...voidupdateA(constunordered_map::iterator&iter){iter->second=100;}voidupdateB(unordered_map::iteratoriter){iter->second=100;}};问题>哪个函数更好(即updateS或update)?如果你有更好的,请提出。谢谢 最佳答案 1)首先,回答标题中的问题,是否有必要通过(const)引用传递迭代器:否。迭代器充当代理容器中的数据项,无论迭代器本身是否是另一个迭

c++ - 常量映射迭代器不会设置为 mymap.begin()

map::iteratorit=mymap.begin();迭代器似乎是常量,但items.begin()不返回常量迭代器。或者,这就是我的想法,因为鼠标悬停错误类似于:"Noconversionfrom'std::Tree_const_iteratortostd::Tree_iteratorexists'".为什么? 最佳答案 将const_iterator用作:map::const_iteratorit=mymap.begin();从错误来看,很明显mymap.begin()返回const_iterator。这是因为mymap在

c++ - 指向常量值的常量数组指针

如果我创建一个常量值的全局数组,例如constintSOME_LIST[SOME_LIST_SIZE]={2,3,5,7,11};是否可以以任何方式修改SOME_LIST?我如何编写这样的SOME_LIST指向一个const内存位置,并且本身是一个const指针(即不能指向其他地方)? 最佳答案 有3个主要的指针示例涉及“const”关键字。(参见此link)首先:声明一个指向常量变量的指针。指针可以移动,可以改变指向的内容,但不能修改变量。constint*p_int;其次:声明一个指向变量的“不可移动”指针。指针是“固定的”,但